Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In many cases, software applications are designed to interact with other software applications or other computer systems. For example, an end-user's computer system may send queries to a database system to retrieve data from the database. The database system receives the query, accesses the data and sends the data to the user. In some cases, database providers may provide the data to the user free of charge. In other cases, the database provider (or the provider of the data served by the database) may wish to charge the user for the data provided. Determining an optimal method for charging different clients with different data needs may prove problematic.